# Makefile

CC=g++
GO=go

CPLUSPLUS_DIR=wrapper/cplusplus
C_DIR=wrapper/c
GO_CODE_DIR=.

CPLUSPLUS_OBJECTS=$(CPLUSPLUS_DIR)/cplusplus_wrapper.o
CPLUSPLUS_LIB=$(CPLUSPLUS_DIR)/libcplusplus_wrapper.a

all: $(CPLUSPLUS_LIB) go_build

$(CPLUSPLUS_OBJECTS): $(CPLUSPLUS_DIR)/%.o: $(CPLUSPLUS_DIR)/%.cpp
	$(CC) -c -fPIC $< -o $@

$(CPLUSPLUS_LIB): $(CPLUSPLUS_OBJECTS)
	ar rcs $@ $^

go_build: $(CPLUSPLUS_LIB)
	$(GO) build -o main -ldflags="-extldflags '-L$(CPLUSPLUS_DIR) -lcplusplus_wrapper -lstdc++'"
	
clean:
	rm -f $(CPLUSPLUS_OBJECTS) $(CPLUSPLUS_LIB) main